package br.ufrj.dcc.org2.signature;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileLoader {
	
	//ATENCAO> O arquivo entrada.txt deve ficar no diretorio com o nome do seu projeto no eclipse
	
	// Tamanho do conjunto de dados
	private static int tam;
	// Caminho do arquivo a ser utilizado para armazenar os dados
	private static final String CAMINHO_ARQUIVO = "./entrada.txt";
	// Vetor que contém os dados
	private static int[] vetorDados;
	private static int tableSize;
	private static int signatureSize;
	private static int bloomSize;
	
	public FileLoader() {
		carregaArquivo();
	}
	
	public int[] getInputData() {
		return vetorDados;
	}
	
	public int getTableSize() {
		return tableSize;
	}
	
	public int getSignatureSize() {
		return signatureSize;
	}
	
	public int getBloomSize() {
		return bloomSize;
	}
	
	public static void carregaArquivo(){
		try {
			//Abrindo arquivo para leitura
			BufferedReader reader = new BufferedReader(new FileReader(new File(CAMINHO_ARQUIVO)));
			try {
				String conteudoArquivo="";
				//Lendo todas as linhas do arquivo
				String aux = reader.readLine();
				while(aux!=null){
					conteudoArquivo+= aux;
					aux = reader.readLine();
				}
				//Separando a string, para que cada string do vetor contenha um número
				String[] dados = conteudoArquivo.split(" ");
				tam = dados.length;
				vetorDados = new int[tam];
				//Preenchendo o vetor de dados
				for(int i = 0; i< dados.length ; i++){
					System.out.println(i+" "+dados[i]);
					if (i == 0)
						tableSize = Integer.parseInt(dados[i]);
					if (i == 1)
						bloomSize = Integer.parseInt(dados[i]);
					if (i == 2)
						signatureSize = Integer.parseInt(dados[i]);
					else
						vetorDados[i] = Integer.parseInt(dados[i]);
				}
			} catch (IOException e) {
				e.printStackTrace();
				System.out.println("Ocorreu um erro durante a leitura do arquivo " + CAMINHO_ARQUIVO );
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("Não foi possível abrir o arquivo " + CAMINHO_ARQUIVO + " para leitura");
		}
	}
}
